local f16 = Float16(1/3) ::Float16
Float16(0.3333)
local f32 = Float32(1/3) ::Float32
0.33333334f0
local f64 = Float64(1/3) ::Float64
0.3333333333333333
bitstring(f16)
"0011010101010101"
bitstring(f32)
"00111110101010101010101010101011"
bitstring(f64)
"0011111111010101010101010101010101010101010101010101010101010101"
Float32(1/3) == Float16(1/3)
false
Float32(1/3) == Float64(1/3)
false
Float16(1/3) == Float64(1/3)
false
Ta sama liczba zmiennoprzecinkowa w różnych reprezentacjach zmiennoprzecinkowych nie jest sobie równa.
convertedTof64 = convert(Float64, f16)
0.333251953125
f64 == convertedTof64
false
f16 == convertedTof64
true
f32 == convertedTof64
false
arguments = Float32[]
values = Float32[]
_start = 1.0
_end = 1000000.0
range = _start : _end
for i=range
push!(arguments, i)
push!(values, eps(i))
end
using Plots
plot(arguments, values)